﻿using JaxaraRnD.Models.Objects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;

namespace JaxaraRnD.Helpers.DataAccess
{
    interface IRepository<T>
    {
        IList<T> GetAll();    
        IList<T> GetList(Expression<Func<T, bool>> predicate);
        T SaveOrUpdate(T entity);
        T Get(int id);
        T Get(Expression<Func<T, bool>> predicate);
        void Delete(int id);

        /*SKP Custom Function Start*/
        IList<Order> GetOrdersByStuffId(int staffId);
        IList<Product> GetProductsByProductIds(int[] ids);
        Staff GetStaffByStaffId(int id);
        IList<Order> GetOrdersByOrderids(int[] ids);
        
        /*SKP Custom Function End*/
    }
}
